// Copyright JS Foundation and other contributors, http://js.foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

var c = 4;
var z = 5;

function addX(x) {
  return function(n) {
    var b = 2;
    return n + x;
  }
}

addThree = addX(3);
d = addThree(c+z);

function f() {
  try {
    throw "error";
  }
  catch (err) {
    var c = 10;
  }

  var m = null;

  var user = {
    name: "John",
    age: 30
  };

  var x = true;
  var b = 10;

  (function() {
    var a = [1,2,3]
    a.y = "abc";
    with (a) {
      var h = [4,5,6]
      with (h) {
        h.d = "dfg"
      }
      a.d = x;
    }
  })();
}

f();

